// src/utils/auth.js

// 假设我们使用 localStorage 来存储认证令牌
const AUTH_TOKEN_KEY = 'authToken';

// 检查用户是否已登录
export function isAuthenticated() {
    // 获取存储在 localStorage 中的认证令牌
    const itemStr = localStorage.getItem(AUTH_TOKEN_KEY);
    console.info(!!itemStr)
    // 如果令牌存在且有效（你可以根据需求添加额外的验证逻辑），则返回 true
    if (!itemStr) {
        return null;
    }
    const item = JSON.parse(itemStr);
    const now = new Date();
    // 比较当前时间与过期时间
    if (now.getTime() > item.expiry) {
        // 如果数据已过期，删除数据并返回 null
        localStorage.removeItem(AUTH_TOKEN_KEY);
        return null;
    }
    return !!item.value;
}


export function getAuthToken() {
    // 获取存储在 localStorage 中的认证令牌
    const itemStr = localStorage.getItem(AUTH_TOKEN_KEY);
    console.info(!!itemStr)
    // 如果令牌存在且有效（你可以根据需求添加额外的验证逻辑），则返回 true
    if (!itemStr) {
        return null;
    }
    const item = JSON.parse(itemStr);
    return item.value;
}

// 用于设置认证令牌（例如在用户登录时调用）
export function setAuthToken(token) {

    // `ttl` 是存储的时间长度（以毫秒为单位）
    const item = {
        value: token,
        expiry: new Date().getTime() + (3600000 * 8),
    };

    localStorage.setItem(AUTH_TOKEN_KEY, JSON.stringify(item));
}


// 用于移除认证令牌（例如在用户登出时调用）
export function clearAuthToken() {
    localStorage.removeItem(AUTH_TOKEN_KEY);
}